package com.ruoyi.report.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 报配置对象 report_config
 * 
 * @author ruoyi
 * @date 2025-06-17
 */
public class ReportConfig extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 配置ID */
    private Long configId;

    /** 报表类型(sales/purchase/inventory/abc_analysis) */
    @Excel(name = "报表类型(sales/purchase/inventory/abc_analysis)")
    private String reportType;

    /** 配置名称 */
    @Excel(name = "配置名称")
    private String configName;

    /** 时间范围类型(custom/day/week/month/quarter/year) */
    @Excel(name = "时间范围类型(custom/day/week/month/quarter/year)")
    private String timeRangeType;

    /** 开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 统计维度 */
    @Excel(name = "统计维度")
    private String dimension;

    /** 图表类型 */
    @Excel(name = "图表类型")
    private String chartType;

    /** 过滤条件(JSON格式) */
    @Excel(name = "过滤条件(JSON格式)")
    private String filters;

    /** 状态(0-启用 1-停用) */
    @Excel(name = "状态(0-启用 1-停用)")
    private String status;

    /** 是否默认(0-否 1-是) */
    @Excel(name = "是否默认(0-否 1-是)")
    private String isDefault;

    public void setConfigId(Long configId) 
    {
        this.configId = configId;
    }

    public Long getConfigId() 
    {
        return configId;
    }

    public void setReportType(String reportType) 
    {
        this.reportType = reportType;
    }

    public String getReportType() 
    {
        return reportType;
    }

    public void setConfigName(String configName) 
    {
        this.configName = configName;
    }

    public String getConfigName() 
    {
        return configName;
    }

    public void setTimeRangeType(String timeRangeType) 
    {
        this.timeRangeType = timeRangeType;
    }

    public String getTimeRangeType() 
    {
        return timeRangeType;
    }

    public void setStartDate(Date startDate) 
    {
        this.startDate = startDate;
    }

    public Date getStartDate() 
    {
        return startDate;
    }

    public void setEndDate(Date endDate) 
    {
        this.endDate = endDate;
    }

    public Date getEndDate() 
    {
        return endDate;
    }

    public void setDimension(String dimension) 
    {
        this.dimension = dimension;
    }

    public String getDimension() 
    {
        return dimension;
    }

    public void setChartType(String chartType) 
    {
        this.chartType = chartType;
    }

    public String getChartType() 
    {
        return chartType;
    }

    public void setFilters(String filters) 
    {
        this.filters = filters;
    }

    public String getFilters() 
    {
        return filters;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setIsDefault(String isDefault) 
    {
        this.isDefault = isDefault;
    }

    public String getIsDefault() 
    {
        return isDefault;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("configId", getConfigId())
            .append("reportType", getReportType())
            .append("configName", getConfigName())
            .append("timeRangeType", getTimeRangeType())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("dimension", getDimension())
            .append("chartType", getChartType())
            .append("filters", getFilters())
            .append("status", getStatus())
            .append("isDefault", getIsDefault())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
